<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <div id="app">
        <input type="button" value="浪起来" @click="lang">
        <input type="button" value="低调" @click="stop">
        <h4>{{ msg }}</h4> 
    </div>
    <script src= "https://unpkg.com/vue/dist/vue.min.js"></script>
    <script>
        var vm = new Vue({
            el: '#app',
            data: {
                msg: '猥琐发育！别浪~~~',
                intervalId: null
            },
            methods: {
                lang() {
                    if(this.intervalId!=null) return;
                    // 箭头函数保证了函数内部的this与外部的this指向一致
                    this.intervalId = setInterval(()=>{
                        var start = this.msg.substring(0,1);
                        var end = this.msg.substring(1);
                        this.msg = end+start;
                    },1000);
                },
                stop() {
                    clearInterval(this.intervalId);
                    this.intervalId = null;
                }
            }
        });
    </script>
</body>
</html>